package collection;

import java.util.*;
import java.util.stream.Collectors;

/**
 * @author Cheng Jun
 * @version 1.0
 * Description: 学习ArrayList
 * @date 2019/10/15 13:42
 */
public class ArrayListStudy {

    public static void main(String[] args) {
        ArrayList<Integer> test = new ArrayList<>();
        List<Boolean> collect = test.stream().map(num -> num != 0).collect(Collectors.toList());
        System.out.println("collect===" + collect);
        ArrayList<String> nameList = new ArrayList<>();
        // index 下标必须有效
        // nameList.add(2, "a");
        nameList.add("a");
        nameList.add("b");
        System.out.println(nameList.toString());

        // nameList.add("b");
        // for (String name : nameList) {
        //     if ("b".equals(name)) {
        //         nameList.remove(name);
        //     }
        // }
        // nameList.forEach(name -> System.out.println(name));

        Set<String> nameSet = new HashSet<>();
        nameSet.add("a");
        nameSet.add("b");
        nameSet.add("c");
        // 不能再 for循环中删除，下面的for循环 实际上是利用迭代器
        // for (String name : nameSet) {
        //     if ("b".equals(name)) {
        //         nameSet.remove(name);
        //     }
        // }

        Iterator<String> iterator = nameSet.iterator();
        while(iterator.hasNext()){
            String name = iterator.next();
            if ("b".equals(name)){
                iterator.remove();
            }
        }

        // System.out.println(nameList);
        //
        // List<String> nameList = new ArrayList<>();
        // // nameList.add("cj");
        // // nameList.add("cj");
        // nameList.add("cj1");
        // nameList.add("cj");
        // // nameList.add(null);
        //


        // List<String> nameList = new ArrayList<>();
        //
        // nameList.add("a");
        // nameList.add("b");
        // nameList.add("b");
        // nameList.add("a");
        // nameList.add("c");
        //
        // System.out.println(nameList);
        // nameList.removeIf(name -> "c".equals(name));
        // System.out.println(nameList);
        // Iterator<String> iterator = nameList.iterator();
        // while(iterator.hasNext()){
        //     String tmp = iterator.next();
        //     if ("b".equals(tmp)){
        //         nameList.remove(tmp);
        //     }
        // }


        // boolean hascj1 = nameList.remove("cj1");
        // System.out.println(hascj1);
        // nameList.iterator().remove();

        // nameList.removeIf(name -> "cj1".equals(name));
        // nameList.forEach(name -> System.out.println(name));

        // nameList.
        // List<String>

        // List<String> maxSizeList = new ArrayList<>(Integer.MAX_VALUE /2);
        // maxSizeList.add("第一个");
        // maxSizeList.set(Integer.MAX_VALUE /2, "Integer最大值");
        // System.out.println(maxSizeList.get(Integer.MAX_VALUE));
        // System.out.println(Integer.MAX_VALUE + 1);


    }

    /**
     * List<Integer> 转 int数组
     * @author Cheng Jun
     * @date 2022/1/1 22:14
     * @param list
     * @return int[]
     */
    public int[] listToArr(List<Integer> list){
       return list.stream()
                .mapToInt(Integer::valueOf)
                .toArray();
    }

    /**
     * int数组 转 List<Integer>
     * @author Cheng Jun
     * @date 2022/1/1 22:14
     * @param arr
     * @return java.util.List<java.lang.Integer>
     */
    public List<Integer> arrToList(int[] arr){
        return Arrays.stream(arr)
                .boxed()
                .collect(Collectors.toList());
    }
}
